var avisos;

$(document).ready(function() {
    
    $('.usuario').text(getUsuario());

    obterMensagens();
    
    function obterMensagens() {

        if (!avisos) {
            var request = $.ajax({
                type: "GET",
                url: "http://"+webservice+"/avisos/" + getHash(),
                dataType: 'json'
            });
            request.done(function(data) {
                if (data && !data.expirou) {
                    avisos = data.values;
                    atualizarAvisos()
                } else {
                    mostrarAlerta('erro', 'Sessão Expirada', 'Seu Tempo de acesso expirou!','index.html');
                }
            });
            request.fail(function(jqXHR, status, exception) {
               mostrarAlerta('erro', 'Erro no acesso', 'Ocorreu um erro ao acessar o servidor.','index.html');
            });
        } else {
            atualizarAvisos();
        }
    };

    function atualizarAvisos() {
        var html = '';
        
        for (var i in avisos) {
            html += '<li data-icon="false"><a href="#" class="mostrarAviso" id=' + avisos[i].id + '>' + avisos[i].tipo+' '+avisos[i].data+ '</a></li>';
        }

        $('#listAvisos').html(html);
        $('.mostrarAviso').click(function() {
            var idAviso = $(this).attr('id');
            $("#idAviso").val(idAviso);
            obterAviso(idAviso);
            $.mobile.navigate('#aviso');
        });
        $("#listAvisos").listview('refresh');
    };

    function mostrarAviso(aviso) {
        
        $('#titulo').html(aviso.titulo);
        $('#corpoAviso').html(aviso.mensagem);
        $('#remetente').html(aviso.remetente);

    };

    function obterAviso(idAviso) {
        var request = $.ajax({
            type: "GET",
            url: "http://"+webservice+"/avisos/aviso/" + idAviso + '/' + getHash(),
            dataType: 'json'
        });
        request.done(function(data) {
            var vazio = $.isEmptyObject(data.value);
        
            if (!vazio && !data.expirou) {
                mostrarAviso(data.value);
            } else if(vazio){ 
                mostrarAlerta('erro', 'Erro ao obter Dado', 'Ocorreu um erro ao obter o aviso!');
            }else
                mostrarAlerta('erro', 'Sessão Expirada', 'Seu Tempo de acesso expirou!','index.html');
        });
        request.fail(function(jqXHR, status, exception) {
            mostrarAlerta('erro', 'Erro no acesso', 'Ocorreu um erro ao acessar o servidor.','index.html');
        });
    };
});